package practice.oop.staticstudy;

public class CodeBlock {
    public static void main(String[] args) {
        Cat.show();
        //animal的静态代码块
        //animal的静态方法
        /*
        1.调用静态成员（静态属性和静态方法）时，会加载静态成员所在的类及其父类。
          通过子类调用父类的静态成员，只会加载父类，不会加载子类
         */


        /*
        一、定义了main的类，启动main方法时该类会被加载
        二、创建类的实例，即new对象的时候
        三、访问类的静态方法
        四、访问类的静态变量
        五、反射 Class.forName()
         */
    }
}

class Animal {
    public static void show() {
        System.out.println("animal的静态方法");
    }

    static {
        System.out.println("animal的静态代码块");
    }
}

class Cat extends Animal {
    static {
        System.out.println("cat的静态代码块");
    }
}